15879
8135
Ich möchte Artikel verschiedener Kunden anzeigen. Zu diesem Zweck rufe ich Daten über einen Ajax-Aufruf ab und gruppiere sie daher basierend auf jedem einzelnen Kunden. Ich hänge dann die gruppierten Daten an mein HTML an.
Die Struktur meiner gruppierten Daten sieht folgendermaßen aus:
"John Doe": [
{
"Item_id": 1
"Item_name": "abc"
},
{
"Item_id": 2
"Item_name": "def"
},
],
"Jane Doe":
{
"Item_id": 3
"Item_name": "ghi"
},
{
"Item_id": 4
"Item_name": "jkl"
},
]]
Mein Code sieht aus wie:
$ .each (groupedData, Funktion (Schlüssel, Wert) {
$ ('. cust_items'). append (`

`+ key +` `); $ .each (Wert, Funktion (ky, val) { $ ('# dataTable tbody'). append ( `
Artikel-Nr. Elementname
`+ ky +` `+ val.Item_name +` `); }); }); Ich stehe vor einem Problem, bei dem alle Artikel unter dem ersten Kunden angezeigt werden, während die Daten unter dem zweiten Kunden korrekt angezeigt werden.
Nach den Eigenschaften fehlen Kommas, und die Objekte der Jane Doe-Eigenschaft sind nicht in [] eingeschlossen. Ändern Sie Ihr groupedData-Objekt, da die Syntax nicht stimmt.
Bearbeiten: Passen Sie auch die Vorlagenzeichenfolge an und greifen Sie auch mit der dynamischen ID auf die Tabelle zu.
Stichprobe:
let groupedData = {
"John Doe": [{
"Item_id": 1,
"Item_name": "abc"
},
{
"Item_id": 2,
"Item_name": "def"
}}
],
"Jane Doe": [{
"Item_id": 3,
"Item_name": "ghi"
},
{
"Item_id": 4,
"Item_name": "jkl"
}}
]]
};
$ .each (groupedData, Funktion (Schlüssel, Wert) {
$ ('. cust_items'). append (`

$ {key} `); $ .each (Wert, Funktion (ky, val) { $ (`#dataTable _ $ {key.split ('') .join ('_')} tbody`) .append ( `
Artikel-Nr. Elementname
$ {ky} $ {val.Item_name} `); }); });